#pragma once

#include"Common.h"

namespace Macro
{
	const UnitType TerranUnitTypes[] = {
		UnitTypes::Terran_Marine,
		UnitTypes::Terran_Ghost,
		UnitTypes::Terran_Vulture,
		UnitTypes::Terran_Goliath,
		UnitTypes::Terran_Siege_Tank_Tank_Mode,
		UnitTypes::Terran_SCV,
		UnitTypes::Terran_Wraith,
		UnitTypes::Terran_Ghost,
		UnitTypes::Terran_Science_Vessel,
		UnitTypes::Terran_Dropship,
		UnitTypes::Terran_Battlecruiser,
		UnitTypes::Terran_Nuclear_Missile,
		UnitTypes::Terran_Firebat,
		UnitTypes::Terran_Medic,
		UnitTypes::Terran_Valkyrie,
		UnitTypes::Terran_Command_Center,
		UnitTypes::Terran_Comsat_Station,
		UnitTypes::Terran_Nuclear_Silo,
		UnitTypes::Terran_Ghost,
		UnitTypes::Terran_Supply_Depot,
		UnitTypes::Terran_Refinery,
		UnitTypes::Terran_Barracks,
		UnitTypes::Terran_Academy,
		UnitTypes::Terran_Factory,
		UnitTypes::Terran_Starport,
		UnitTypes::Terran_Control_Tower,
		UnitTypes::Terran_Science_Facility,
		UnitTypes::Terran_Covert_Ops,
		UnitTypes::Terran_Physics_Lab,
		UnitTypes::Terran_Machine_Shop,
		UnitTypes::Terran_Engineering_Bay,
		UnitTypes::Terran_Armory,
		UnitTypes::Terran_Missile_Turret,
		UnitTypes::Terran_Bunker,
	};
	

	const UnitType ProtossUnitTypes[] = {
		UnitTypes::Protoss_Corsair,
		UnitTypes::Protoss_Dark_Templar,
		UnitTypes::Protoss_Dark_Archon,
		UnitTypes::Protoss_Probe,
		UnitTypes::Protoss_Zealot,
		UnitTypes::Protoss_Dragoon,
		UnitTypes::Protoss_High_Templar,
		UnitTypes::Protoss_Archon,
		UnitTypes::Protoss_Shuttle,
		UnitTypes::Protoss_Scout,
		UnitTypes::Protoss_Arbiter,
		UnitTypes::Protoss_Carrier,
		UnitTypes::Protoss_Interceptor,
		UnitTypes::Protoss_Reaver,
		UnitTypes::Protoss_Observer,
		UnitTypes::Protoss_Scarab,
		UnitTypes::Protoss_Nexus,
		UnitTypes::Protoss_Robotics_Facility,
		UnitTypes::Protoss_Pylon,
		UnitTypes::Protoss_Assimilator,
		UnitTypes::Protoss_Observatory,
		UnitTypes::Protoss_Gateway,
		UnitTypes::Protoss_Photon_Cannon,
		UnitTypes::Protoss_Citadel_of_Adun,
		UnitTypes::Protoss_Cybernetics_Core,
		UnitTypes::Protoss_Templar_Archives,
		UnitTypes::Protoss_Forge,
		UnitTypes::Protoss_Stargate,
		UnitTypes::Protoss_Fleet_Beacon,
		UnitTypes::Protoss_Arbiter_Tribunal,
		UnitTypes::Protoss_Robotics_Support_Bay,
		UnitTypes::Protoss_Shield_Battery,
	};

	const UnitType ZergUnitTypes[] = {
		UnitTypes::Zerg_Zergling,
		UnitTypes::Zerg_Hydralisk,
		UnitTypes::Zerg_Ultralisk,
		UnitTypes::Zerg_Drone,
		UnitTypes::Zerg_Overlord,
		UnitTypes::Zerg_Mutalisk,
		UnitTypes::Zerg_Guardian,
		UnitTypes::Zerg_Queen,
		UnitTypes::Zerg_Defiler,
		UnitTypes::Zerg_Scourge,
		UnitTypes::Zerg_Infested_Terran,
		UnitTypes::Zerg_Devourer,
		UnitTypes::Zerg_Lurker,
		UnitTypes::Zerg_Infested_Command_Center,
		UnitTypes::Zerg_Hatchery,
		UnitTypes::Zerg_Lair,
		UnitTypes::Zerg_Hive,
		UnitTypes::Zerg_Nydus_Canal,
		UnitTypes::Zerg_Hydralisk_Den,
		UnitTypes::Zerg_Defiler_Mound,
		UnitTypes::Zerg_Greater_Spire,
		UnitTypes::Zerg_Queens_Nest,
		UnitTypes::Zerg_Evolution_Chamber,
		UnitTypes::Zerg_Ultralisk_Cavern,
		UnitTypes::Zerg_Spire,
		UnitTypes::Zerg_Spawning_Pool,
		UnitTypes::Zerg_Creep_Colony,
		UnitTypes::Zerg_Spore_Colony,
		UnitTypes::Zerg_Sunken_Colony,
		UnitTypes::Zerg_Extractor,
	};

	const vector<UnitType> VectorOfTerranUnitTypes(TerranUnitTypes , TerranUnitTypes + sizeof(TerranUnitTypes) / sizeof(UnitType));
	const vector<UnitType> VectorOfProtossUnitTypes(ProtossUnitTypes , ProtossUnitTypes + sizeof(ProtossUnitTypes) / sizeof(UnitType));
	const vector<UnitType> VectorOfZergUnitTypes(ZergUnitTypes , ZergUnitTypes + sizeof(ZergUnitTypes) / sizeof(UnitType));

	const vector<UnitType> UnitTypes[3] = {VectorOfTerranUnitTypes , VectorOfProtossUnitTypes , VectorOfZergUnitTypes};
}